1. Field of the Invention
This invention relates to a method and apparatus for controlling a movable object, and more particularly to a method of positioning, orienting, and programming movements of a tool held by a robot arm, and an apparatus therefor.
2. Discussion of the Prior Art
Many activities involve control of the movement of an object in a three-dimensional space. So-called "real time" manipulation of graphic objects in computer simulations, e.g. video games, flight simulators, virtual reality, etc., is an example. Another is the control and programming of industrial robots, particularly the robot arms used in assembly operations to manipulate tools such as spray painters or welders. Such control is achieved using various control systems, typically digital controllers implemented in computers, which move the tool along either a precalculated trajectory or a reference trajectory provided by spatial input devices such as keypads, joysticks or trackballs, in a teach-repeat mode or in real time.
While programmable robots in these applications perform repetitive and often dangerous tasks more efficiently than human, they must be programmed by humans. A programmer typically must direct the robot in a stepwise manner through each detail of each task to be performed with only the aid of a keyboard or a handheld keypad called a "teach pendant." Because of the design of these teach pendants, this progrmming has been done by moving or rotating the robot arm along one axis at a time in a domain with typically four to six degrees of freedom. with constant, careful observation of where the tool, or end effector is located. Complex motions are very time consuming to program because of the nature of the programming tools in use today. Robots are typically programmed by moving the robot arm in separate or "decoupled" orthogonal straight-line or rotational movements parallel to or around the axes of the reference coordinate frame or around axes of various robot joints. Thus, each movement must be taught as a combination of individual points on a spline. However, the orientation of the reference coordinate frame is not always immediately evident or intuitive to the programmer, thus making it necessary to jog the robot arm to see if a particular command to be programmed causes motion in the intended direction. Aside from being inefficient and time-consuming, programming in this way can be destructive or even dangerous, since an improper movement of the robot during programming could damage or destroy a tool or a workpiece, possibly endangering personnel in the vicinity.
Also, present-day robotic controllers use inconsistent user interfaces, both between different manufacturers and even between different model robots of the same manufacturers. Thus, when a robot needs to be reprogrammed, adjusted, or replaced, a person trained in the idiosyncrasies of a particular user interface must typically be brought in or on staff to do the required work. Although others could be trained to use a new user interface, the cost of running an assembly line can be so high (on the order of $15,000 to $25,000 per minute in some automotive assembly lines) that an inefficient or error-prone programmer cannot be tolerated.
While inconsistent or non-standard user interfaces are the norm in the robotics industry, most robots are provided with programming languages that can readily accept data corresponding to the robot's workvolume and desired coordinate frames (i.e., world, tool). Also, the typical robot controller can readily translate arbitrary move-to and rotate-to commands into joint angle data, and into the control signals needed to move the robot arm into the desired position.
Joysticks and trackballs have been used as spatial input devices for programming robots, but they are incapable of providing sufficiently intuitive controls corresponding to each of all the possible movements of a robot arm. For example, while it is simple enough to provide three degrees of freedom in trackball with sensors and map rotations of the trackball into forward, reverse, and right-left motion corresponding to orthogonal movements of the robot arm in a plane, to use the trackball for directing the robot in a third translational direction, it is necessary to provide sensors for detecting rotation of the trackball about a third orthogonal axis. Unfortunately, while the other two orthogonal motions of the trackball can be intuitively related to the motion of the robot arm (i.e., left-fight and up-down motions of the wrist vs. the same linear motion of the robot arm), the third motion requires a twisting motion of the wrist which does not intuitively correspond to the third orthogonal motion of the robot arm. While a separate control can be added for this third translational motion, its use would be difficult and nonintuitive.
Ideally, a spatial input device replacing a teach pendant should also have the capability of providing simple commands that restrict motion of the robot as desired. Consider, for example, a robot arm spray painting the side of a van on an assembly line. If it is known that the (possibly irregularly-shaped) workpiece is to be positioned at a fixed position, it may be desirable to ensure that, whatever manipulation is done to the robot arm, the endeffector remains a fixed distance (or at a fixed orientation) relative to the nearest part of the workpiece. In the spray painting example, motion commands to the robot controller could be constrained to ensure that the spray painting nozzle at the end of the robot arm is maintained at a fixed distance and angle with respect to the side of the van and travels at a uniform speed, ensuring a uniform paint coating. During programming of the robot, such constraints could protect the tool, the robot arm, and the workpiece from damage. Perhaps more importantly, movements of the robot arm could be confined within a limited volume of space to protect workers who must be on the factory floor while robots are operating--including, of course, those who program the robots.
Aside from teach pendants and track balls, other programming devices are known. Linkages are devices that resemble the device they control; for example, a four degree of freedom linkage would control a four degree of freedom robot. However, these linkages are usually table mounted, and intuitive control is lost if the device is taken off the table. Also, linkages also have a limited range of motion. Gloves and other anthropomorphic devices used as controllers and programming input devices physically and undesirably tie the operator to the computer. This type of device also does not provide intuitive control for translational movement, and are difficult to implement if the person using the glove or other device is not stationary in his position within the work volume. Devices relying on emitter/receiver technology, such as IR and acoustic transmitters and receivers usually have limited range and are primarily limited to line of sight control. These devices do not work well in noisy industrial environments.
There is thus a need for an easy-to-use, intuitive real-time 6 DOF (degrees of freedom) input device to replace difficult-to-use teach pendants and unintuitive joysticks and trackballs. This input device should provide intuitive control no matter where a use is positioned or oriented in the workplace, and should not require table mounting or have to be within a line of sight from a sensor and with no limitation as to the type of environment. It would further be desirable to provide both simple and complex motion control (i.e., essentially simultaneous motion in several reference directions at the same time) with the same device using easily understood commands. Moreover, it would be highly advantageous to provide both an unlimited range of motion commands when desired as well as a means for constraining motion commands from the spatial input device to provide, for example, confinement of robot motion to a fixed volume of space, "smoothing" of a tool trajectory, or a maintenance of constant distance between a tool and a workpiece. It would also be advantageous to provide both coarse and fine motion control.
In addition to uses in robotics, an input device having the desired characteristics could be used to input 6 DOF motion for any hardware or virtual object or device, such as cranes, flight simulators, or computer simulated devices or objects, either to program these devices or to provide real-time, simultaneous 6 DOF control.